iT邦幫忙

2026 iThome 鐵人賽

DAY 5
0
自我挑戰組

Java 程式設計與實作:30 天打造個人記帳系統系列 第 5

switch 多重判斷:替消費建立分類

  • 分享至 

  • xImage
  •  

前一天學習了 if / else 條件判斷,讓記帳程式可以根據消費金額顯示不同的提醒。
今天要繼續增加一個新功能:消費分類選擇。
之前每次記帳時,都要自己輸入「飲食」、「交通」、「購物」等文字。今天想把它改成選單,讓使用者只要輸入數字,就可以選擇消費分類。
這次會使用 Java 的 switch。

什麼是 switch?
switch 可以根據一個變數的不同值,執行不同的程式。
基本寫法像這樣:
switch (變數) {
case 1:
// 選擇 1 時執行
break;

case 2:
    // 選擇 2 時執行
    break;

default:
    // 都不符合時執行

}
例如:
int choice = 1;

switch (choice) {
case 1:
System.out.println("飲食");
break;

case 2:
    System.out.println("交通");
    break;

default:
    System.out.println("其他");

}
當 choice 是 1 時,就會輸出:
飲食

break 是什麼?
今天第一次看到 break。
在 switch 裡面,break 可以讓程式執行完目前的 case 之後離開 switch。
例如:
case 1:
category = "飲食";
break;
當使用者選擇 1,設定完「飲食」之後,就不會繼續執行下面其他的 case。

今天的小實作:建立消費分類選單
今天把記帳程式改成讓使用者選擇分類:
import java.util.Scanner;

public class Main {
public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    System.out.println("===== 個人記帳系統 =====");

    System.out.print("請輸入消費項目:");
    String item = scanner.nextLine();

    System.out.print("請輸入消費金額:");
    int amount = scanner.nextInt();

    System.out.println();
    System.out.println("請選擇消費分類:");
    System.out.println("1. 飲食");
    System.out.println("2. 交通");
    System.out.println("3. 購物");
    System.out.println("4. 娛樂");

    System.out.print("請輸入選項:");
    int choice = scanner.nextInt();

    String category;

    switch (choice) {
        case 1:
            category = "飲食";
            break;

        case 2:
            category = "交通";
            break;

        case 3:
            category = "購物";
            break;

        case 4:
            category = "娛樂";
            break;

        default:
            category = "其他";
    }

    System.out.println();
    System.out.println("===== 記帳完成 =====");
    System.out.println("消費項目:" + item);
    System.out.println("消費金額:" + amount + " 元");
    System.out.println("消費分類:" + category);

    if (amount >= 1000) {
        System.out.println("消費提醒:這是一筆較高的支出!");
    } else {
        System.out.println("消費提醒:這是一筆一般消費。");
    }

    scanner.close();
}

}
執行結果
例如今天買了一杯咖啡:
===== 個人記帳系統 =====
請輸入消費項目:咖啡
請輸入消費金額:80

請選擇消費分類:

  1. 飲食
  2. 交通
  3. 購物
  4. 娛樂
    請輸入選項:1

===== 記帳完成 =====
消費項目:咖啡
消費金額:80 元
消費分類:飲食
消費提醒:這是一筆一般消費。

這次我沒有直接輸入「飲食」,而是輸入數字 1,程式就會透過 switch 自動把分類設定成「飲食」。

如果輸入的數字不是 1~4,例如:8
就會執行 default:
消費分類:其他

switch 和 if / else 有什麼不同?
昨天使用的 if / else 比較適合判斷條件,例如:
if (amount >= 1000)
可以判斷金額是否超過 1000 元。

今天的 switch 則很適合處理「固定選項」。
例如記帳系統中的:
1 → 飲食
2 → 交通
3 → 購物
4 → 娛樂
所以實際寫程式時,可以根據不同的情況選擇使用 if / else 或 switch。

Day 5 學習心得
今天學習了 Java 的 switch 多重判斷,也第一次把消費分類做成選單。
比起之前直接輸入分類名稱,現在只需要輸入數字就可以選擇分類,使用起來比較方便,也讓記帳程式越來越像真正可以操作的系統。
另外,今天也了解 switch、case、break 和 default 的用途。前幾天學到的 Scanner、變數和 if / else 也都繼續用在今天的程式裡,開始慢慢感覺到每一天學的內容其實都是連在一起的。


上一篇
if / else 條件判斷:讓記帳程式判斷消費金額
下一篇
for 迴圈:讓程式重複顯示消費紀錄
系列文
Java 程式設計與實作:30 天打造個人記帳系統7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言